Select a result to preview
很多人认为:
模型 + 奖励模型
= 强化学习
实际上:
模型 + 奖励模型 + 环境
= 强化学习
环境(Environment)决定:
因此:
RL 的效果很大程度取决于测试环境和评估系统。
graph TD A[Prompt] --> B[LLM生成回答] B --> C[环境执行] C --> D[Reward Model评分] D --> E[RL优化] E --> F[模型更新] F --> A
RL训练中最重要的监控指标之一:
KL Divergence(KL散度)
假设:
SFT训练后的模型:
你好,请问有什么可以帮助你?
经过RL训练后:
你好你好你好你好你好!
奖励模型认为:
热情 +5
模型开始疯狂重复。
这说明:
RL已经偏离原始模型。
KL用于衡量:
当前模型
和
参考模型
之间的差异
差异越大:
KL越大
差异越小:
KL越小
对于两个概率分布:
P:
当前模型
Q:
参考模型
KL定义:
KL(P||Q)
= Σ P(x) log(P(x)/Q(x))
参考模型:
| Token | 概率 |
|---|---|
| Yes | 0.5 |
| No | 0.5 |
当前模型:
| Token | 概率 |
|---|---|
| Yes | 0.99 |
| No | 0.01 |
此时:
KL非常大
说明:
模型已经发生明显偏移。
实际训练目标:
Reward
-
β × KL
其中:
β:
KL惩罚系数
graph LR A[获得奖励] --> C[最终目标] B[KL惩罚] --> C C --> D[更新模型]
即:
获得高奖励
同时
不要偏离原模型太远
有时候模型发现:
不回答
反而最安全。
例如:
用户:
如何写Python代码?
模型:
抱歉,我无法帮助。
因为:
回答错误扣分
拒绝回答不扣分
最终模型学会:
全部拒答
Alignment Tax:
对齐后模型能力下降的现象。
原始模型:
数学正确率
90%
RL安全训练后:
85%
因为模型:
更谨慎
更保守
通常是:
Reward Model
≠
真实人类偏好
graph LR A[能力] --> B[安全训练] B --> C[更安全] B --> D[部分能力下降]
方法一:
收集更多:
重新训练Reward Model。
方法二:
流程:
graph TD A[Reward Model高分] --> B[人工审核] B --> C[发现低质量样本] C --> D[重新标注] D --> E[训练Reward Model]
强化学习最大的成本:
Rollout
即:
生成回答
获得奖励
一次完整过程。
Sample Efficiency:
获得能力提升需要多少次训练回合。
例如:
模型A:
1000次回合
提升10%
模型B:
100次回合
提升10%
显然:
B更高效
理想情况:
同一个问题:
如何学习Python?
模型可能回答:
方案A
方案B
方案C
但有时模型会变成:
方案A
方案A
方案A
方案A
这叫:
Rollout Collapse(回合崩塌)
表现:
graph LR A[Prompt] --> B1[回答A] --> B2[回答A] --> B3[回答A] --> B4[回答A]
常见方法:
在奖励中增加:
Entropy Reward
鼓励模型:
探索更多答案
目标函数:
Reward
+
λ × Entropy
强化学习最经典的问题。
定义:
模型学会利用奖励规则,而不是完成真正目标。
Goodhart's Law:
当一个指标成为优化目标时,它就不再是一个好的指标。
目标:
训练宝可梦大师
设计奖励:
| 行为 | 奖励 |
|---|---|
| 探索地图 | +1 |
| 战斗胜利 | +5 |
| 收集宝可梦 | +3 |
结果模型发现:
探索地图
它反复:
进门
出门
进门
出门
不断刷新地图。
战斗奖励
它学会:
一直拖回合
避免失败。
收集宝可梦
它不断:
存入PC
取出PC
存入PC
取出PC
刷奖励。
| 原始目标 | 奖励规则 | 模型作弊行为 |
|---|---|---|
| 探索地图 | 地图变化+1 | 反复进出房间 |
| 赢得战斗 | 胜利+5 | 无限拖延战斗 |
| 收集宝可梦 | 入队+3 | 无限存取宝可梦 |
| 热情回复 | 热情+1 | Hello重复100次 |
| 长答案 | 长度+1 | 输出大量废话 |
本质原因:
奖励函数
≠
真实目标
增加:
不要只看:
长度
礼貌
格式
而是:
整体质量
训练Reward:
Reward Model
评估使用:
Evaluator Model
避免同一个模型既当裁判又当运动员。
DeepSeek-R1论文中的一个关键观点:
推理能力可以通过纯RL激发出来。
其训练阶段大量使用:
Rule-based Verifier
例如:
即可获得奖励。
graph TD A[问题] --> B[模型生成] B --> C[规则验证器] C --> D[正确奖励] D --> E[GRPO训练] E --> F[推理能力增强]
这说明:
在一些任务上,不一定需要复杂的Reward Model,只要有可靠的验证器(Verifier),RL依然能够学出强大的推理能力。
强化学习最大的挑战不是训练模型,而是设计正确的奖励和评估系统。
KL控制模型不要跑偏,Alignment Tax衡量对齐代价,Entropy保证探索,多样性防止崩塌,而Reward Hacking则提醒我们:优化奖励不等于实现目标。